package com.eduagent.xwqeduagent.utils.oj;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

/**
 * Judge0提交响应对象
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class JudgeSubmissionResponse {

    /**
     * 标准输出
     */
    @JsonProperty("stdout")
    private String stdout;
    
    /**
     * 标准错误
     */
    @JsonProperty("stderr")
    private String stderr;
    
    /**
     * 编译输出
     */
    @JsonProperty("compile_output")
    private String compileOutput;
    
    /**
     * 消息
     */
    @JsonProperty("message")
    private String message;
    
    /**
     * 退出码
     */
    @JsonProperty("exit_code")
    private Integer exitCode;
    
    /**
     * 退出信号
     */
    @JsonProperty("exit_signal")
    private Integer exitSignal;
    
    /**
     * 状态
     */
    @JsonProperty("status")
    private JudgeStatus status;
    
    /**
     * 创建时间
     */
    @JsonProperty("created_at")
    private String createdAt;
    
    /**
     * 完成时间
     */
    @JsonProperty("finished_at")
    private String finishedAt;
    
    /**
     * 提交令牌
     */
    @JsonProperty("token")
    private String token;
    
    /**
     * 运行时间（秒）
     */
    @JsonProperty("time")
    private Float time;
    
    /**
     * 墙钟时间（秒）
     */
    @JsonProperty("wall_time")
    private Float wallTime;
    
    /**
     * 内存使用（KB）
     */
    @JsonProperty("memory")
    private Float memory;
    
    /**
     * 语言ID
     */
    @JsonProperty("language_id")
    private Integer languageId;
    
    /**
     * 评测状态对象
     */
    @Data
    public static class JudgeStatus {
        /**
         * 状态ID
         */
        @JsonProperty("id")
        private Integer id;
        
        /**
         * 状态描述
         */
        @JsonProperty("description")
        private String description;
    }
} 